package com.example.kotlinstudy.控制流程

fun main() {
//    val s = person.name ?: return

    loop@ for (i in 1..100) {
        for (j in 1..100) {
            if (j > 2) {
                println(j)
                //continue@loop
                break@loop
            }
        }
    }

    foo()
    println()
    foo002()
    println()
    foo003()
    println()
    foo004()
    println()
    foo005()
}

fun foo() {
    listOf<Int>(1, 2, 3, 4, 5).forEach {
        if (it == 3) {
            return
        }
        print(it)
    }
}

fun foo002() {
    listOf<Int>(1, 2, 3, 4, 5).forEach lit@{
        if (it == 3) {
            return@lit
        }
        print(it)
    }
}

fun foo003() {
    listOf<Int>(1, 2, 3).forEach {
        if (it == 3) return@forEach
        print(it)
    }
}

fun foo004() {
    listOf<Int>(1, 2, 3).forEach(fun(value: Int) {
        if (value == 3) return
        print(value)
    })
}

//当要返一个回值的时候，解析器优先选用标签限定的返回：
fun foo005() {
    run loop@{
        listOf(1, 2, 3, 4, 5).forEach {
            if (it == 3) return@loop 1
            print(it)
        }
    }
}